package com.ruoyi.my.p6spy;

import com.p6spy.engine.spy.appender.MessageFormattingStrategy;
import com.ruoyi.common.utils.StringUtils;

/**
 * p6spySQL日志格式打印
 **/
public class P6spyLogFormatStrategy implements MessageFormattingStrategy {
    /**
     * 日志格式化方式（打印SQL日志会进入此方法，耗时操作，生产环境不建议使用）
     *
     * @param connectionId: 连接ID
     * @param now:          当前时间
     * @param elapsed:      花费时间
     * @param category:     类别
     * @param prepared:     预编译SQL
     * @param sql:          最终执行的SQL
     * @param url:          数据库连接地址
     * @return 格式化日志结果
     **/
    @Override
    public String formatMessage(int connectionId, String now, long elapsed,
                                String category, String prepared, String sql,
                                String url) {
        if(StringUtils.isBlank(sql)) return null;
        if(elapsed>2000){
            return "【危险】SQL耗时" + elapsed + "毫秒，最终【" + sql + "】";
        }else if(elapsed>500){
            return "【警告】SQL耗时" + elapsed + "毫秒，最终【" + sql + "】";
        }else return "SQL耗时【" + elapsed + "毫秒】 最终【" + sql + "】";
    }
}
